let obj = {
	a: 1,
	b: 'hello',
	c: true,

	[Symbol.iterator] () {
		var index = 0 ;
		var entries  = Object.entries(obj)
		return {next() {
			return {done: index >= entries.length, value:entries[index++]}
		}}
	}
}


/*
console.log(Object.entries(obj))

var map = new Map(Object.entries(obj))
console.log(map)

console.log([1, 2])
console.dir(new String("hello"))
console.log('sdfsdf'[Symbol.iterator], typeof'sdfsdf'[Symbol.iterator] )

*/


for(var a of obj) {
	console.log(a)
}

console.log('-----------------------\n')

var it = obj[Symbol.iterator]();
console.log(it, it.constructor)

console.log(it.next())
console.log(it.next())
console.log(it.next())
console.log(it.next())
